package com.nowcoder.community.repository;

import com.nowcoder.community.entity.Message;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;


@Mapper
public interface MessageMapper {
    /* 查询用户私信，不包含系统通知（from_id = 1） */

    // 用户维度
    // 会话列表 -- 与每个好友的最新消息
    List<Message> selectConversations(int userId, int offset, int limit);
    // 会话数量
    int countConversations(int userId);
    // 未读数量
    // 如果 conversationId 不为 null，查的是会话未读数量
    int countUnreadMessages(int userId, String conversationId);

    // 会话未读
    // 所有会话消息
    List<Message> selectConversationMessages(String conversationId, int offset, int limit);
    // 会话消息数量
    int countConversationMessages(String conversationId);

    // -------
    // 添加消息
    int insertMessage(Message message);

    int updateMessagesStatus(List<Integer> ids, int status);

    Message selectMessageById(int id);

    //--------
    // 系统通知
    Message selectLatestNotice(int userId, String topic);
    List<Message> selectNotices(int userId, String topic, int offset, int limit);
    int countNotices(int userId, String topic);
    int countUnreadNotices(int userId, String topic);
}
